﻿using Joy.Erp.BasicArchives.Core.UniqueCodes;
using System;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;

namespace Joy.Erp.BasicArchives.Core
{
    /// <summary>
    /// 档案聚合根类
    /// </summary>
    /// <typeparam name="TKey"></typeparam>
    public interface IArchiveAggregateRoot<TKey> : IEntity<TKey>, IFullAuditedObject
    {
        /// <summary>
        /// 编码
        /// </summary>
        string Code { get; set; }

        /// <summary>
        /// 设置id
        /// </summary>
        /// <param name="id"></param>
        void SetId(TKey id);

        /// <summary>
        /// 来源类型
        /// </summary>
        string SourceType { get; set; }

        /// <summary>
        /// 来源主键
        /// </summary>
        string SourceKey { get; set; }

        /// <summary>
        /// 来源时间
        /// </summary>
        DateTime? SourceCreatedOn { get; set; }
    }

    public interface IArchiveAggregateRoot : IArchiveAggregateRoot<Guid>
    {

    }
}
